package com.example.backend.service;

import com.example.backend.entity.StockRecord;
import java.util.List;

public interface StockRecordService {
    int addStockRecord(StockRecord stockRecord);
    StockRecord getStockRecordById(Long id);
    List<StockRecord> getAllStockRecords();
    int updateStockRecord(StockRecord stockRecord);
    int deleteStockRecord(Long id);
    
    // 根据入库记录ID获取库存记录
    List<StockRecord> getStockRecordsByInId(Long inId);
    
    // 根据公司和港口获取有库存的记录（FIFO排序）
    List<StockRecord> getAvailableStockRecordsByCompanyAndPort(Long companyId, Long portId);
    
    // 根据仓库ID获取库存记录
    List<StockRecord> getStockRecordsByWarehouseId(Long warehouseId);
    
    // 根据公司ID获取库存记录
    List<StockRecord> getStockRecordsByCompanyId(Long companyId);
    
    // 更新库存记录（出库时减少剩余重量）
    int updateRemainingWeight(Long id, java.math.BigDecimal newRemainingWeight);
    
    // 获取指定入库记录的剩余重量
    java.math.BigDecimal getRemainingWeightByInId(Long inId);
} 